@@ -2,13 +2,14 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from __future__ import division  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 
                -from django.conf import settings  | 
            |
| 5 | 
                +from django.db import transaction  | 
            |
| 6 | 6 | 
                from django_logit import logit  | 
            
| 7 | 7 | 
                from django_response import response  | 
            
| 8 | 8 | 
                from paginator import pagination  | 
            
| 9 | 
                +from TimeConvert import TimeConvert as tc  | 
            |
| 9 | 10 | 
                 | 
            
| 10 | 11 | 
                from kodo.decorators import check_admin  | 
            
| 11 | 
                -from tenancy.models import TenancyShotInfo  | 
            |
| 12 | 
                +from tenancy.models import TenancyShotInfo, TenancyShotRequestInfo  | 
            |
| 12 | 13 | 
                from utils.error.errno_utils import TenancyStatusCode  | 
            
| 13 | 14 | 
                 | 
            
| 14 | 15 | 
                 | 
            
                @@ -31,7 +32,6 @@ def shot_list(request, administrator):  | 
            ||
| 31 | 32 | 
                @logit  | 
            
| 32 | 33 | 
                @check_admin  | 
            
| 33 | 34 | 
                def shot_detail(request, administrator):  | 
            
| 34 | 
                -    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 35 | 35 | 
                     shot_id = request.POST.get('shot_id', '')
               | 
            
| 36 | 36 | 
                 | 
            
| 37 | 37 | 
                try:  | 
            
                @@ -47,7 +47,6 @@ def shot_detail(request, administrator):  | 
            ||
| 47 | 47 | 
                @logit  | 
            
| 48 | 48 | 
                @check_admin  | 
            
| 49 | 49 | 
                def shot_create(request, administrator):  | 
            
| 50 | 
                -    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 51 | 50 | 
                     model_name = request.POST.get('model_name', '')
               | 
            
| 52 | 51 | 
                     sn = request.POST.get('sn', '')
               | 
            
| 53 | 52 | 
                     fittings_type = request.POST.get('fittings_type', 0)
               | 
            
                @@ -68,7 +67,6 @@ def shot_create(request, administrator):  | 
            ||
| 68 | 67 | 
                @logit  | 
            
| 69 | 68 | 
                @check_admin  | 
            
| 70 | 69 | 
                def shot_update(request, administrator):  | 
            
| 71 | 
                -    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 72 | 70 | 
                     shot_id = request.POST.get('shot_id', '')
               | 
            
| 73 | 71 | 
                     model_name = request.POST.get('model_name', '')
               | 
            
| 74 | 72 | 
                     sn = request.POST.get('sn', '')
               | 
            
                @@ -85,3 +83,141 @@ def shot_update(request, administrator):  | 
            ||
| 85 | 83 | 
                     return response(data={
               | 
            
| 86 | 84 | 
                'shot': shot.data,  | 
            
| 87 | 85 | 
                })  | 
            
| 86 | 
                +  | 
            |
| 87 | 
                +  | 
            |
| 88 | 
                +@logit  | 
            |
| 89 | 
                +@check_admin  | 
            |
| 90 | 
                +def shot_request_list(request, administrator):  | 
            |
| 91 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 92 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 93 | 
                +  | 
            |
| 94 | 
                +    reqs = TenancyShotRequestInfo.objects.filter(status=True).order_by('-pk')
               | 
            |
| 95 | 
                + reqs = [req.data for req in reqs]  | 
            |
| 96 | 
                + reqs, left = pagination(reqs, page, num)  | 
            |
| 97 | 
                +  | 
            |
| 98 | 
                +    return response(data={
               | 
            |
| 99 | 
                + 'reqs': reqs,  | 
            |
| 100 | 
                + 'left': left,  | 
            |
| 101 | 
                + })  | 
            |
| 102 | 
                +  | 
            |
| 103 | 
                +  | 
            |
| 104 | 
                +@logit  | 
            |
| 105 | 
                +@check_admin  | 
            |
| 106 | 
                +def shot_request_detail(request, administrator):  | 
            |
| 107 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 108 | 
                +  | 
            |
| 109 | 
                + try:  | 
            |
| 110 | 
                + req = TenancyShotRequestInfo.objects.get(request_id=req_id, status=True)  | 
            |
| 111 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 112 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 113 | 
                +  | 
            |
| 114 | 
                +    return response(data={
               | 
            |
| 115 | 
                + 'req': req.data,  | 
            |
| 116 | 
                + })  | 
            |
| 117 | 
                +  | 
            |
| 118 | 
                +  | 
            |
| 119 | 
                +@logit  | 
            |
| 120 | 
                +@check_admin  | 
            |
| 121 | 
                +@transaction.atomic  | 
            |
| 122 | 
                +def shot_request_update(request, administrator):  | 
            |
| 123 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 124 | 
                +    shot_id = request.POST.get('shot_id', '')
               | 
            |
| 125 | 
                +    name = request.POST.get('name', '')
               | 
            |
| 126 | 
                +    phone = request.POST.get('phone', '')
               | 
            |
| 127 | 
                +    postcode = request.POST.get('postcode', '')
               | 
            |
| 128 | 
                +    location = request.POST.get('location', '')
               | 
            |
| 129 | 
                +    purpose = request.POST.get('purpose', '')
               | 
            |
| 130 | 
                +    return_date = request.POST.get('return_date', '')
               | 
            |
| 131 | 
                +    request_status = request.POST.get('request_status', '')
               | 
            |
| 132 | 
                +    tracking_number = request.POST.get('tracking_number', '')
               | 
            |
| 133 | 
                +    back_tracking_number = request.POST.get('back_tracking_number', '')
               | 
            |
| 134 | 
                +  | 
            |
| 135 | 
                + try:  | 
            |
| 136 | 
                + req = TenancyShotRequestInfo.objects.select_for_update().get(request_id=req_id, status=True)  | 
            |
| 137 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 138 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 139 | 
                +  | 
            |
| 140 | 
                + if shot_id:  | 
            |
| 141 | 
                + req.shot_id = shot_id  | 
            |
| 142 | 
                + if name:  | 
            |
| 143 | 
                + req.name = name  | 
            |
| 144 | 
                + if phone:  | 
            |
| 145 | 
                + req.phone = phone  | 
            |
| 146 | 
                + if postcode:  | 
            |
| 147 | 
                + req.postcode = postcode  | 
            |
| 148 | 
                + if location:  | 
            |
| 149 | 
                + req.location = location  | 
            |
| 150 | 
                + if purpose:  | 
            |
| 151 | 
                + req.purpose = purpose  | 
            |
| 152 | 
                + if return_date:  | 
            |
| 153 | 
                + req.return_date = tc.to_date(return_date)  | 
            |
| 154 | 
                + if request_status:  | 
            |
| 155 | 
                + req.request_status = request_status  | 
            |
| 156 | 
                + if tracking_number:  | 
            |
| 157 | 
                + req.tracking_number = tracking_number  | 
            |
| 158 | 
                + if back_tracking_number:  | 
            |
| 159 | 
                + req.back_tracking_number = back_tracking_number  | 
            |
| 160 | 
                + req.save()  | 
            |
| 161 | 
                +  | 
            |
| 162 | 
                +    return response(data={
               | 
            |
| 163 | 
                + 'req': req.data,  | 
            |
| 164 | 
                + })  | 
            |
| 165 | 
                +  | 
            |
| 166 | 
                +  | 
            |
| 167 | 
                +@logit  | 
            |
| 168 | 
                +@check_admin  | 
            |
| 169 | 
                +@transaction.atomic  | 
            |
| 170 | 
                +def shot_request_audit(request, administrator):  | 
            |
| 171 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 172 | 
                +    audit_status = request.POST.get('audit_status', 0)
               | 
            |
| 173 | 
                +  | 
            |
| 174 | 
                + try:  | 
            |
| 175 | 
                + req = TenancyShotRequestInfo.objects.select_for_update().get(request_id=req_id, status=True)  | 
            |
| 176 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 177 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 178 | 
                +  | 
            |
| 179 | 
                + req.audit_status = audit_status  | 
            |
| 180 | 
                + req.save()  | 
            |
| 181 | 
                +  | 
            |
| 182 | 
                +    return response(data={
               | 
            |
| 183 | 
                + 'req': req.data,  | 
            |
| 184 | 
                + })  | 
            |
| 185 | 
                +  | 
            |
| 186 | 
                +  | 
            |
| 187 | 
                +@logit  | 
            |
| 188 | 
                +@check_admin  | 
            |
| 189 | 
                +@transaction.atomic  | 
            |
| 190 | 
                +def shot_request_send(request, administrator):  | 
            |
| 191 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 192 | 
                +    tracking_number = request.POST.get('tracking_number', '')
               | 
            |
| 193 | 
                +  | 
            |
| 194 | 
                + try:  | 
            |
| 195 | 
                + req = TenancyShotRequestInfo.objects.select_for_update().get(request_id=req_id, status=True)  | 
            |
| 196 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 197 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 198 | 
                +  | 
            |
| 199 | 
                + req.tracking_number = tracking_number  | 
            |
| 200 | 
                + req.save()  | 
            |
| 201 | 
                +  | 
            |
| 202 | 
                +    return response(data={
               | 
            |
| 203 | 
                + 'req': req.data,  | 
            |
| 204 | 
                + })  | 
            |
| 205 | 
                +  | 
            |
| 206 | 
                +  | 
            |
| 207 | 
                +@logit  | 
            |
| 208 | 
                +@check_admin  | 
            |
| 209 | 
                +@transaction.atomic  | 
            |
| 210 | 
                +def shot_request_signed(request, administrator):  | 
            |
| 211 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 212 | 
                +  | 
            |
| 213 | 
                + try:  | 
            |
| 214 | 
                + req = TenancyShotRequestInfo.objects.select_for_update().get(request_id=req_id, status=True)  | 
            |
| 215 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 216 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 217 | 
                +  | 
            |
| 218 | 
                + req.request_status = '寄回已签收并检查无损坏'  | 
            |
| 219 | 
                + req.save()  | 
            |
| 220 | 
                +  | 
            |
| 221 | 
                +    return response(data={
               | 
            |
| 222 | 
                + 'req': req.data,  | 
            |
| 223 | 
                + })  | 
            
                @@ -3,17 +3,19 @@  | 
            ||
| 3 | 3 | 
                from __future__ import division  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 
                +from django.db import transaction  | 
            |
| 6 | 7 | 
                from django_logit import logit  | 
            
| 8 | 
                +from django_query import get_query_value  | 
            |
| 7 | 9 | 
                from django_response import response  | 
            
| 8 | 10 | 
                from paginator import pagination  | 
            
| 11 | 
                +from TimeConvert import TimeConvert as tc  | 
            |
| 9 | 12 | 
                 | 
            
| 10 | 
                -from tenancy.models import TenancyShotInfo  | 
            |
| 13 | 
                +from tenancy.models import TenancyShotInfo, TenancyShotRequestInfo  | 
            |
| 11 | 14 | 
                from utils.error.errno_utils import TenancyStatusCode  | 
            
| 12 | 15 | 
                 | 
            
| 13 | 16 | 
                 | 
            
| 14 | 17 | 
                @logit  | 
            
| 15 | 18 | 
                def shot_list(request):  | 
            
| 16 | 
                -    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 17 | 19 | 
                     page = request.POST.get('page', 1)
               | 
            
| 18 | 20 | 
                     num = request.POST.get('num', 20)
               | 
            
| 19 | 21 | 
                 | 
            
                @@ -29,7 +31,6 @@ def shot_list(request):  | 
            ||
| 29 | 31 | 
                 | 
            
| 30 | 32 | 
                @logit  | 
            
| 31 | 33 | 
                def shot_detail(request):  | 
            
| 32 | 
                -    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 33 | 34 | 
                     shot_id = request.POST.get('shot_id', '')
               | 
            
| 34 | 35 | 
                 | 
            
| 35 | 36 | 
                try:  | 
            
                @@ -40,3 +41,103 @@ def shot_detail(request):  | 
            ||
| 40 | 41 | 
                     return response(data={
               | 
            
| 41 | 42 | 
                'shot': shot.data,  | 
            
| 42 | 43 | 
                })  | 
            
| 44 | 
                +  | 
            |
| 45 | 
                +  | 
            |
| 46 | 
                +@logit  | 
            |
| 47 | 
                +def shot_request_create(request):  | 
            |
| 48 | 
                +    shot_id = request.POST.get('shot_id', '')
               | 
            |
| 49 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 50 | 
                +    name = request.POST.get('name', '')
               | 
            |
| 51 | 
                +    phone = request.POST.get('phone', '')
               | 
            |
| 52 | 
                +    postcode = request.POST.get('postcode', '')
               | 
            |
| 53 | 
                +    location = request.POST.get('location', '')
               | 
            |
| 54 | 
                +    purpose = request.POST.get('purpose', '')
               | 
            |
| 55 | 
                +    return_date = tc.to_date(request.POST.get('return_date', '') or settings.DEFAULT_START_DATE)
               | 
            |
| 56 | 
                +  | 
            |
| 57 | 
                + req = TenancyShotRequestInfo.objects.create(  | 
            |
| 58 | 
                + shot_id=shot_id,  | 
            |
| 59 | 
                + user_id=user_id,  | 
            |
| 60 | 
                + name=name,  | 
            |
| 61 | 
                + phone=phone,  | 
            |
| 62 | 
                + postcode=postcode,  | 
            |
| 63 | 
                + location=location,  | 
            |
| 64 | 
                + purpose=purpose,  | 
            |
| 65 | 
                + return_date=return_date,  | 
            |
| 66 | 
                + )  | 
            |
| 67 | 
                +  | 
            |
| 68 | 
                +    return response(data={
               | 
            |
| 69 | 
                + 'req': req.data,  | 
            |
| 70 | 
                + })  | 
            |
| 71 | 
                +  | 
            |
| 72 | 
                +  | 
            |
| 73 | 
                +@logit  | 
            |
| 74 | 
                +def shot_request_list(request):  | 
            |
| 75 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 76 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 77 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 78 | 
                +  | 
            |
| 79 | 
                +    reqs = TenancyShotRequestInfo.objects.filter(user_id=user_id, status=True).order_by('-pk')
               | 
            |
| 80 | 
                + reqs = [req.data for req in reqs]  | 
            |
| 81 | 
                + reqs, left = pagination(reqs, page, num)  | 
            |
| 82 | 
                +  | 
            |
| 83 | 
                +    return response(data={
               | 
            |
| 84 | 
                + 'reqs': reqs,  | 
            |
| 85 | 
                + 'left': left,  | 
            |
| 86 | 
                + })  | 
            |
| 87 | 
                +  | 
            |
| 88 | 
                +  | 
            |
| 89 | 
                +@logit  | 
            |
| 90 | 
                +def shot_request_detail(request):  | 
            |
| 91 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 92 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 93 | 
                +  | 
            |
| 94 | 
                + try:  | 
            |
| 95 | 
                + req = TenancyShotRequestInfo.objects.get(request_id=req_id, user_id=user_id, status=True)  | 
            |
| 96 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 97 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 98 | 
                +  | 
            |
| 99 | 
                +    return response(data={
               | 
            |
| 100 | 
                + 'req': req.data,  | 
            |
| 101 | 
                + })  | 
            |
| 102 | 
                +  | 
            |
| 103 | 
                +  | 
            |
| 104 | 
                +@logit  | 
            |
| 105 | 
                +@transaction.atomic  | 
            |
| 106 | 
                +def shot_request_signed(request):  | 
            |
| 107 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 108 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 109 | 
                + signed_images = get_query_value(request, 'signed_images', val_cast_type='listjson')  | 
            |
| 110 | 
                +  | 
            |
| 111 | 
                + try:  | 
            |
| 112 | 
                + req = TenancyShotRequestInfo.objects.select_for_update().get(request_id=req_id, user_id=user_id, status=True)  | 
            |
| 113 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 114 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 115 | 
                +  | 
            |
| 116 | 
                + req.tracking_signed_images = signed_images  | 
            |
| 117 | 
                + req.request_status = '寄出已签收'  | 
            |
| 118 | 
                + req.save()  | 
            |
| 119 | 
                +  | 
            |
| 120 | 
                +    return response(data={
               | 
            |
| 121 | 
                + 'req': req.data,  | 
            |
| 122 | 
                + })  | 
            |
| 123 | 
                +  | 
            |
| 124 | 
                +  | 
            |
| 125 | 
                +@logit  | 
            |
| 126 | 
                +@transaction.atomic  | 
            |
| 127 | 
                +def shot_request_sendback(request):  | 
            |
| 128 | 
                +    req_id = request.POST.get('req_id') or request.POST.get('request_id')
               | 
            |
| 129 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 130 | 
                +    back_tracking_number = request.POST.get('back_tracking_number', '')
               | 
            |
| 131 | 
                +  | 
            |
| 132 | 
                + try:  | 
            |
| 133 | 
                + req = TenancyShotRequestInfo.objects.select_for_update().get(request_id=req_id, user_id=user_id, status=True)  | 
            |
| 134 | 
                + except TenancyShotRequestInfo.DoesNotExist:  | 
            |
| 135 | 
                + return response(TenancyStatusCode.TENANCY_SHOT_REQUEST_NOT_FOUND)  | 
            |
| 136 | 
                +  | 
            |
| 137 | 
                + req.back_tracking_number = back_tracking_number  | 
            |
| 138 | 
                + req.request_status = '寄出已签收'  | 
            |
| 139 | 
                + req.save()  | 
            |
| 140 | 
                +  | 
            |
| 141 | 
                +    return response(data={
               | 
            |
| 142 | 
                + 'req': req.data,  | 
            |
| 143 | 
                + })  | 
            
                @@ -324,7 +324,7 @@ urlpatterns += [  | 
            ||
| 324 | 324 | 
                url(r'^maintenance/tracking/info/callback$', maintenance_views.maintenance_tracking_info_callback, name='maintenance_tracking_info_callback'),  | 
            
| 325 | 325 | 
                ]  | 
            
| 326 | 326 | 
                 | 
            
| 327 | 
                -# 租赁  | 
            |
| 327 | 
                +# 租赁镜头  | 
            |
| 328 | 328 | 
                urlpatterns += [  | 
            
| 329 | 329 | 
                # 小程序接口  | 
            
| 330 | 330 | 
                url(r'^tenancy/shot/list$', tenancy_views.shot_list, name='tenancy_shot_list'),  | 
            
                @@ -340,6 +340,19 @@ urlpatterns += [  | 
            ||
| 340 | 340 | 
                # 租赁申请  | 
            
| 341 | 341 | 
                urlpatterns += [  | 
            
| 342 | 342 | 
                # 小程序接口  | 
            
| 343 | 
                + url(r'^tenancy/shot/request/create$', tenancy_views.shot_request_create, name='tenancy_shot_request_create'),  | 
            |
| 344 | 
                + url(r'^tenancy/shot/request/list$', tenancy_views.shot_request_list, name='tenancy_shot_request_list'),  | 
            |
| 345 | 
                + url(r'^tenancy/shot/request/detail$', tenancy_views.shot_request_detail, name='tenancy_shot_request_detail'),  | 
            |
| 346 | 
                + url(r'^tenancy/shot/request/signed$', tenancy_views.shot_request_signed, name='tenancy_shot_request_signed'),  | 
            |
| 347 | 
                + url(r'^tenancy/shot/request/sendback$', tenancy_views.shot_request_sendback, name='tenancy_shot_request_sendback'),  | 
            |
| 343 | 348 | 
                 | 
            
| 344 | 349 | 
                # 后台管理接口  | 
            
| 350 | 
                + url(r'^admin/tenancy/shot/request/list$', tenancy_admin_views.shot_request_list, name='admin_tenancy_shot_request_list'),  | 
            |
| 351 | 
                + url(r'^admin/tenancy/shot/request/detail$', tenancy_admin_views.shot_request_detail, name='admin_tenancy_shot_request_detail'),  | 
            |
| 352 | 
                + url(r'^admin/tenancy/shot/request/update$', tenancy_admin_views.shot_request_update, name='admin_tenancy_shot_request_update'),  | 
            |
| 353 | 
                + url(r'^admin/tenancy/shot/request/audit$', tenancy_admin_views.shot_request_audit, name='admin_tenancy_shot_request_audit'),  | 
            |
| 354 | 
                + url(r'^admin/tenancy/shot/request/send$', tenancy_admin_views.shot_request_send, name='admin_tenancy_shot_request_send'),  | 
            |
| 355 | 
                + url(r'^admin/tenancy/shot/request/signed$', tenancy_admin_views.shot_request_signed, name='admin_tenancy_shot_request_signed'),  | 
            |
| 356 | 
                +  | 
            |
| 357 | 
                + # 快递信息回调接口  | 
            |
| 345 | 358 | 
                ]  | 
            
                @@ -113,9 +113,15 @@ class TenancyShotRequestInfo(BaseModelMixin):  | 
            ||
| 113 | 113 | 
                 | 
            
| 114 | 114 | 
                @property  | 
            
| 115 | 115 | 
                def data(self):  | 
            
| 116 | 
                + try:  | 
            |
| 117 | 
                + shot = TenancyShotInfo.objects.get(shot_id=self.shot_id)  | 
            |
| 118 | 
                + except TenancyShotInfo.DoesNotExist:  | 
            |
| 119 | 
                + shot = None  | 
            |
| 116 | 120 | 
                         return {
               | 
            
| 121 | 
                + 'req_id': self.request_id,  | 
            |
| 117 | 122 | 
                'request_id': self.request_id,  | 
            
| 118 | 123 | 
                'shot_id': self.shot_id,  | 
            
| 124 | 
                +            'shot_info': shot.data if shot else {},
               | 
            |
| 119 | 125 | 
                'user_id': self.user_id,  | 
            
| 120 | 126 | 
                'name': self.name,  | 
            
| 121 | 127 | 
                'phone': self.phone,  | 
            
                @@ -216,3 +216,5 @@ class MaintenanceStatusCode(BaseStatusCode):  | 
            ||
| 216 | 216 | 
                class TenancyStatusCode(BaseStatusCode):  | 
            
| 217 | 217 | 
                """ 租赁相关错误码 5090xx """  | 
            
| 218 | 218 | 
                TENANCY_SHOT_NOT_FOUND = StatusCodeField(509001, 'Tenancy Shot Not Found', description=u'租赁镜头不存在')  | 
            
| 219 | 
                +  | 
            |
| 220 | 
                + TENANCY_SHOT_REQUEST_NOT_FOUND = StatusCodeField(509011, 'Tenancy Shot Request Not Found', description=u'租赁镜头申请不存在')  |